Preparativos

#carga de paquetes
library(dplyr)
library(sf)
library(DT)
library(plotly)
library(leaflet)
library(rgdal)
# Primates de Costa Rica
primates_cr <-
  st_read(
    "https://raw.githubusercontent.com/gf0604-procesamientodatosgeograficos/2021i-datos/main/gbif/primates-cr-registros.csv",
    options = c(
      "X_POSSIBLE_NAMES=decimalLongitude",
      "Y_POSSIBLE_NAMES=decimalLatitude"
    ),
    quiet = TRUE
  )
# Capa geespacial de cantones
cantones <-
  st_read(
    "https://raw.githubusercontent.com/gf0604-procesamientodatosgeograficos/2021i-datos/main/ign/delimitacion-territorial-administrativa/cr_cantones_simp_wgs84.geojson",
    quiet = TRUE
  )
# Asignación de CRS
st_crs(primates_cr) = 4326
# Cruce espacial con la tabla de cantones, para obtener el nombre del cantón
primates_cr <- 
  primates_cr %>%
  st_join(cantones["canton"])

Tabla con registros.

# Tabla de registros
primates_cr %>%
  st_drop_geometry() %>%
  select(family, species, stateProvince, canton, eventDate) %>%
  datatable(
    colnames = c("Familia", "Especie", "Provincia", "Cantón", "Fecha"),
    options = list(searchHighlight = TRUE)
  )

arreglar el hud a español todavia

gresgistros <-
data.frame("Categorie" = rownames(primates_cr), primates_cr)
gresgistros3 <- gresgistros[, c('Categorie','species', 'recordNumber')]
plot_ly(
gresgistros3,
labels = ~ species ,
type = 'pie'
) %>%
  layout(
title = 'Cantidad de resgistro de las especies y el porcentaje.',
xaxis = list(
showgrid = FALSE,
zeroline = FALSE,
showticklabels = FALSE
),
yaxis = list(
showgrid = FALSE,
zeroline = FALSE,
showticklabels = FALSE
)
)

filtrado de Especies

Ateles <- primates_cr %>%
  filter(species == "Ateles geoffroyi")
Cebus <- primates_cr %>%
  filter(species == "Cebus capucinus")
Alouatta <- primates_cr %>%
  filter(species == "Alouatta palliata")
Saimiri <- primates_cr %>%
  filter(species == "Saimiri oerstedii")

Mapa de distribucion

# Mapa de registros de presencia
primates_cr %>%
  select(stateProvince,
         canton,
         eventDate,
         species) %>%
  leaflet() %>%
  addProviderTiles(providers$OpenStreetMap.Mapnik, group = "OpenStreetMap") %>%
  addProviderTiles(providers$Stamen.TonerLite, group = "Stamen Toner Lite") %>%
  addProviderTiles(providers$Esri.WorldImagery, group = "Imágenes de ESRI") %>%
  addCircleMarkers(
    data = Ateles,
    stroke = F,
    radius = 2,
    fillColor = 'gray',
    fillOpacity = 1,
    popup = paste(
      primates_cr$stateProvince,
      primates_cr$canton,
      primates_cr$eventDate,
      primates_cr$species,
      sep = '<br/>'
    ),
    group = "Ateles"
  ) %>%
  addCircleMarkers(
    data = Cebus,
    stroke = F,
    radius = 2,
    fillColor = 'green',
    fillOpacity = 1,
    popup = paste(
      primates_cr$stateProvince,
      primates_cr$canton,
      primates_cr$eventDate,
      primates_cr$species,
      sep = '<br/>'
    ),
    group = "Cebus"
  ) %>%
  addCircleMarkers(
    data = Alouatta,
    stroke = F,
    radius = 2,
    fillColor = 'blue',
    fillOpacity = 1,
    popup = paste(
      primates_cr$stateProvince,
      primates_cr$canton,
      primates_cr$eventDate,
      primates_cr$species,
      sep = '<br/>'
    ),
    group = "Alouatta"
  ) %>%
  addCircleMarkers(
    data = Saimiri,
    stroke = F,
    radius = 2,
    fillColor = 'purple',
    fillOpacity = 1,
    popup = paste(
      primates_cr$stateProvince,
      primates_cr$canton,
      primates_cr$eventDate,
      primates_cr$species,
      sep = '<br/>'
    ),
    group = "Saimiri"
  ) %>%
  addLayersControl(
    baseGroups = c("OpenStreetMap", "Stamen Toner Lite", "Imágenes de ESRI"),
    overlayGroups = c("Ateles", "Alouatta","Cebus", "Saimiri")
  ) %>%
  addMiniMap(
    tiles = providers$Stamen.OpenStreetMap.Mapnik,
    position = "bottomleft",
    toggleDisplay = TRUE
  )